A partir del archivo de datos “covid19_confirmados.csv” desarrollar análisis exploratorio espacial de datos que describa las principales características de las variables de interés seleccionadas (por ejemplo, estadísticos descriptivos y estadísticos de dispersión) e identifique la estructura espacial de los datos a través la elaboración de mapas que muestren la presencia de autocorrelación espacial.
ESDA son las siglas en inglés de Análisis Espacial Exploratorio de Datos (Exploratory Spatial Data Analysis, en inglés). Es una técnica de análisis de datos que se utiliza para explorar y analizar la estructura espacial de los datos, es decir, cómo se distribuyen los datos en el espacio.
El propósito principal del ESDA es ayudar a identificar patrones espaciales y tendencias en los datos, lo que puede ser útil para entender mejor las relaciones espaciales entre las variables y para tomar decisiones informadas basadas en la ubicación geográfica.
La autocorrelación espacial se refiere a la medida de similitud entre los valores de una variable geográfica en diferentes ubicaciones espaciales. Es decir, se refiere a la tendencia de los valores de una variable para ser similares en lugares cercanos unos a otros en el espacio.
Un ejemplo de autocorrelación espacial positiva podría ser la distribución de la riqueza en una ciudad, donde las áreas adyacentes tienden a tener valores similares de ingresos y estatus socioeconómico. Por otro lado, un ejemplo de autocorrelación espacial negativa podría ser la distribución de la contaminación atmosférica en una ciudad, donde las áreas cercanas a las fuentes de emisión tienen valores de contaminación más altos que las áreas lejanas.
Para empezar con el análisis, primero hay que realizar una limpieza, cargando las bases de datos (“denue” y “covid19 confirmados”) y el shp file.
# carga de bases de datos
denue <- read_xlsx("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/denue_hospitales.xlsx") # Directorio Estadístico Nacional de Unidades Económicas
datos_covid <- read_xlsx("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/covid19_confirmados.xlsx") # datos covid
shp <- sf::read_sf("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/mx_mpios.shp") # shp file
Después, creamos la clave para la unión de ambas bases de datos.
# creando la clave para la unión de las bases de datos
denue2 <- denue %>% mutate(cve_ent =(cve_ent*1000)+cve_mun) %>% group_by(cve_ent,entidad) %>% count()
covid_hospital <- merge(datos_covid,denue2,by="cve_ent",all=TRUE)
Una vez unidas nuestras bases de datos, con la información de todos los meses del año 2021, tenemos la suma de covid anual (2021) y se dividió en cuartos de años, teniendo como resultado Covid Q1 2021, Covid Q2 2021, Covid Q3 2021 y Covid Q4 2021. También, se creó la columna región para separar la base por regiones correspondientes al análisis.
# creacion de variables
# covid 2021
covid_hospital %<>% mutate(Covid_2021 = jan_2021+feb_2021+mar_2021...32+april_2021+may_2021+
june_2021+july_2021+august_2021+ sept_2021+oct_2021+nov_2021+dic_2021,
Covid_Q1_2021 =jan_2021+feb_2021+mar_2021...32,
Covid_Q2_2021 = april_2021+may_2021+ june_2021,
Covid_Q3_2021 =july_2021+august_2021+ sept_2021,
Covid_Q4_2021= oct_2021+nov_2021+dic_2021)
# division x zonas
Centro <- c("Ciudad de Mexico", "Mexico", "Guanajuato", "Hidalgo", "Morelos", "Puebla", "Queretaro","Tlaxcala")
Centro_Norte <- c("Aguascalientes", "Baja California Sur", "Colima", "Durango", "Jalisco", "Michoacan","Michoacan de Ocampo", "Nayarit", "San Luis Potosi", "Sinaloa", "Zacatecas")
Sur <- c("Campeche","Chiapas","Guerrero","Oaxaca","Quintana Roo","Tabasco","Veracruz","Yucatan")
Norte <- c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas" )
covid_hospital <- covid_hospital %>% mutate(Region= as.factor(ifelse(entidad%in%Centro,"Centro",ifelse(entidad%in%Centro_Norte,"Centro Norte",ifelse(entidad%in%Sur,"Sur",ifelse(entidad%in%Norte,"Norte","Otro")))))) %>% dplyr::select(Region, everything())
# Se continuó con la transformación de las variables a su tipo de dato correcto
num <- c("porcentaje_pob_pobreza","porcentaje_pob_servicios_salud","porcentaje_pob_acceso_ss")
covid_hospital[num] <- lapply(covid_hospital[num], as.double)
covid_hospital[num] <- lapply(covid_hospital[num]/100, as.double)
str(covid_hospital)
## 'data.frame': 2468 obs. of 50 variables:
## $ Region : Factor w/ 5 levels "Centro","Centro Norte",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ cve_ent : num 1001 1002 1003 1004 1005 ...
## $ mpio : chr "Aguascalientes" "Asientos" "Calvillo" "Cosio" ...
## $ poblacion_2022 : num 961977 50864 60760 16918 130184 ...
## $ hogrem2015 : num 4.82 12.87 25.85 14.29 5.72 ...
## $ hogremjefmuj2015 : num 27.8 22.1 25.6 21.2 19.9 ...
## $ popnoafmed2015 : num 14.34 5.77 9.97 5.28 14.02 ...
## $ gini2015 : num 0.392 0.37 0.375 0.37 0.402 0.389 0.396 0.418 0.371 0.37 ...
## $ popden2020 : num 812 94.1 62.5 131.9 260.3 ...
## $ crimen_2018 : num 7.36 7.81 8.4 17.86 5.14 ...
## $ crimen_2019 : num 8.15 5.78 8.31 0 10.98 ...
## $ inclusion_fin_2019 : num 1.78 0 1.16 0 0.36 1.2 1.03 0 0 0 ...
## $ porcentaje_pob_pobreza : num 0.237 0.401 0.458 0.37 0.263 ...
## $ porcentaje_pob_pobreza_ext : num 1.97 4.14 4.5 3.38 3.29 2.88 5.56 2.32 3.15 4.81 ...
## $ porcentaje_pob_servicios_salud: num 0.2 0.165 0.21 0.176 0.211 ...
## $ porcentaje_pob_acceso_ss : num 0.378 0.621 0.762 0.475 0.419 ...
## $ pob_6-14_no_edu : num 4.6 6.29 6.95 5.7 5.88 4.44 4.38 5.74 5.37 4.4 ...
## $ rezago_social : num -1.32 -0.86 -0.92 -1 -1.17 -1.17 -1.07 -0.96 -0.9 -0.83 ...
## $ grado_rs : chr "Muy bajo" "Muy bajo" "Muy bajo" "Muy bajo" ...
## $ feb_2020 : num 0 0 0 0 0 0 0 0 0 0 ...
## $ march_2020 : num 45 1 0 0 1 5 1 0 1 0 ...
## $ april_2020 : num 213 1 9 0 12 6 10 4 1 1 ...
## $ may_2020 : num 520 7 2 17 21 26 40 1 24 3 ...
## $ june_2020 : num 1168 21 25 25 42 ...
## $ july_2020 : num 1271 42 89 25 65 ...
## $ august_2020 : num 1385 17 18 17 71 ...
## $ sept_2020 : num 1364 13 41 2 65 ...
## $ oct_2020 : num 2388 46 64 6 93 ...
## $ nov_2020 : num 3965 94 185 13 104 ...
## $ dic_2020 : num 2370 73 116 2 73 87 16 14 18 11 ...
## $ jan_2021 : num 3271 64 186 9 78 ...
## $ feb_2021 : num 1498 42 151 7 73 ...
## $ mar_2021...32 : num 1310 21 73 0 38 34 10 4 8 5 ...
## $ mar_2021...33 : num 1310 21 73 0 38 34 10 4 8 5 ...
## $ april_2021 : num 826 14 19 2 27 15 11 5 2 6 ...
## $ may_2021 : num 401 6 3 1 14 3 13 0 0 3 ...
## $ june_2021 : num 221 2 0 4 8 3 3 1 1 0 ...
## $ july_2021 : num 1140 6 37 1 35 10 11 2 1 2 ...
## $ august_2021 : num 2944 49 82 4 116 ...
## $ sept_2021 : num 2121 23 22 1 95 ...
## $ oct_2021 : num 1560 33 57 4 78 39 66 5 12 22 ...
## $ nov_2021 : num 1126 16 32 4 45 ...
## $ dic_2021 : num 2067 14 68 4 95 ...
## $ entidad : chr "Aguascalientes" "Aguascalientes" "Aguascalientes" "Aguascalientes" ...
## $ n : int 2708 38 109 14 146 91 84 9 22 13 ...
## $ Covid_2021 : num 18485 290 730 41 702 ...
## $ Covid_Q1_2021 : num 6079 127 410 16 189 ...
## $ Covid_Q2_2021 : num 1448 22 22 7 49 ...
## $ Covid_Q3_2021 : num 6205 78 141 6 246 ...
## $ Covid_Q4_2021 : num 4753 63 157 12 218 ...
covid_hospital$mpio <- as.factor(covid_hospital$mpio)
covid_hospital$grado_rs <- as.factor(covid_hospital$grado_rs)
covid_hospital$entidad <- as.factor(covid_hospital$entidad)
# variables que no me sirven
#n= número total de hospitales
covid_hospital %<>% dplyr::select(-hogrem2015, -hogremjefmuj2015, -popnoafmed2015, -gini2015, -crimen_2018, -crimen_2019, -feb_2020, -march_2020, -april_2020, -may_2020, -june_2020, -july_2020, -august_2020, -sept_2020, -oct_2020, -nov_2020, -dic_2020, -jan_2021, -feb_2021, -mar_2021...32, -mar_2021...33, -april_2021, -may_2021, -june_2021, -july_2021, -august_2021, -sept_2021, -oct_2021, -nov_2021, -dic_2021)
# renombramos la columna n
#n= número total de hospitales
covid_hospital <- rename(covid_hospital, num_hospitales = n)
Una vez limpia la base de datos, filtramos para crear una base adicional con únicamente los datos de region norte.
hNorte <- covid_hospital %>%
filter(entidad %in% c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas"))
hNorteU <- unique(hNorte$entidad)
Ahora, chequamos la cantidad de NA’s que existen en la base de datos y vemos que hay un total de 16 NA’s.
# na's
sum(is.na(hNorte)) # hay un total de 16 NA's
## [1] 16
# encontrar los índices de fila y columna que contienen NA's en el dataframe hNorte
filas_na <- which(apply(hNorte, 1, function(x) any(is.na(x))))
columnas_na <- which(apply(hNorte, 2, function(x) any(is.na(x))))
# imprimir los índices de fila y columna
cat("Las filas con NA's son:", filas_na, "\n") # Las filas con NA's son: 6
## Las filas con NA's son: 6
cat("Las columnas con NA's son:", columnas_na, "\n") # Las columnas con NA's son: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20
## Las columnas con NA's son: 3 4 5 6 7 8 9 10 11 12 13 16 17 18 19 20
colnames(hNorte)
## [1] "Region" "cve_ent"
## [3] "mpio" "poblacion_2022"
## [5] "popden2020" "inclusion_fin_2019"
## [7] "porcentaje_pob_pobreza" "porcentaje_pob_pobreza_ext"
## [9] "porcentaje_pob_servicios_salud" "porcentaje_pob_acceso_ss"
## [11] "pob_6-14_no_edu" "rezago_social"
## [13] "grado_rs" "entidad"
## [15] "num_hospitales" "Covid_2021"
## [17] "Covid_Q1_2021" "Covid_Q2_2021"
## [19] "Covid_Q3_2021" "Covid_Q4_2021"
# las columnas con NA's son: mpio, poblacion_2022, popden2020, inclusion_fin_2019, porcentaje_pob_pobreza, porcentaje_pob_pobreza_ext, porcentaje_pob_servicios_salud, porcentaje_pob_acceso_ss, pob_6-14_no_edu, rezago_social, grado_rs, Covid_2021, Covid_Q1_2021, Covid_Q2_2021, Covid_Q3_2021 y Covid_Q4_2021
Uno de nuestros propósitos es poder identificar cuales son las variables que tiene una correlación significativa con la variable de interés (Covid). Aquí vemos que las variables de Población, Centro Médicos, Inclusión Financiera y Densidad tienen una correlación positiva con respecto a la variable de Covid. Por otro lado vemos que las variables de Rezago Social, Pobreza y Acceso a servicios de salud tienen una correlación negativa con respecto a la variable de Covid.
# CORRELATION PLOT GENERAL
cor <- covid_hospital[,unlist(lapply(covid_hospital, is.numeric))]
cor <- model.matrix(~0+., data=cor)
cor <- round(cor(cor),4)
corrplot::corrplot(cor,method = 'square', order = 'FPC', type = 'lower', diag = FALSE)
Ahora analizando la matriz de la región norte vemos que los resultados son bastante similares. Esto nos deja dicho que no se encuentra una diferencia significativa en cuanto a la correlación de las variables en la región norte.
# CORRELATION PLOT DEL NORTE
cor_norte <- hNorte[,unlist(lapply(hNorte, is.numeric))]
cor_norte <- model.matrix(~0+., data=cor_norte)
cor_norte <- round(cor(cor_norte),4)
corrplot::corrplot(cor_norte,method = 'square', order = 'FPC', type = 'lower', diag = FALSE)
Como primer gráfico tenemos un treemap con los casos de covid de la república mexicana. El gráfico se compone por subgrupos (regiones, entidades de cada región y los municipios de cada entidad). El tamaño de cada cuadro representa la cantidad de casos de covid (región, entidad y municipio). Esto nos proporciona un panorama general sobre la distibución de casos confirmados de covid en 2021.
covid_hospital$Region <- as.factor(covid_hospital$Region)
covid_hospital$entidad <- as.factor(covid_hospital$entidad)
covid_hospital$mpio <- as.factor(covid_hospital$mpio)
t <- treemap::treemap(covid_hospital,
# data
index=c("Region","entidad","mpio"),
vSize="Covid_2021",
type="index",
# Main
title="Distribución de Covid 2021",
palette="Set3",
mapping=NA,
# Borders:
border.col=c("black"),
border.lwds=1,
# Labels
fontsize.labels=10,
fontcolor.labels="black",
fontface.labels=1,
#bg.labels=c("transparent"),
align.labels=c("left", "top"),
overlap.labels=0.5,
inflate.labels=T)
De manera más visual, realizamos el treemap de forma interactiva de manera que nos muestra la distribución de casos por covid por regiones, basándonos en el tamaño de los recuadros, entre mayor sea mayor distribución. En este caso vemos que la region centro es la que mayor casos tiene confirmados, después la region centro norte, sur y por último norte. De igual manera, se puede observar más a detalle por recuadro a nivel municipal.
# DISTRIBUCION COVID 2021 (INTERACTIVO)
#devtools::install_github("timelyportfolio/d3treeR")
d3treeR::d3tree2(t , rootname = "General" )
Entrando más a detalle en el análisis de las variables, tenemos este histograma que nos muestra el porcentaje de la población en situación de pobreza haciendo una comparativa a nivel Nacional y Regional. Podemos observar que si existe un porcentaje alto de personas en situacion de pobreza.
# porcentaje de la poblacion en situación de pobreza Nacional y Región Norte
a <- ggplot(covid_hospital,aes(porcentaje_pob_pobreza)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
labs(subtitle="Nacional") +xlab("porcentaje")+ylab("")
b <- ggplot(hNorte,aes(porcentaje_pob_pobreza)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
labs(subtitle="Región Norte") +xlab("porcentaje")+ylab("")
cowplot::plot_grid(a,b, ncol = 2)
Continuando con el análisis de la pobreza, tenemos este comparativo de pobreza extrema a nivel Nacional y Región Norte. Vemos que existe un porcentaje poco significativo de población en situaciones de pobreza extrema en méxico.
# porcentaje de la poblacion en situacion de pobreza extrema Nacional y Región Norte
a <- ggplot(covid_hospital,aes(porcentaje_pob_pobreza_ext)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
labs(subtitle="Nacional") +xlab("porcentaje")+ylab("")
b <- ggplot(hNorte,aes(porcentaje_pob_pobreza_ext)) + geom_histogram(color="#8B668B",fill="#DDA0DD")+theme_classic() +
labs(subtitle="Región Norte") +xlab("porcentaje")+ylab("")
cowplot::plot_grid(a,b, ncol = 2)
Aqui podemos ver un comparativo de la distribución de los datos de covid para méxico y para la región norte. La línea diagonal que se encuentra en el gráfico representa la distribución normal, en este caso vemos que la distribución se encuentra baja para ambos casos. Vemos que los puntos de ambas gráficas se encuentran bastante cerca de la línea hasta que en un punto al final se desvían. En otras palabras, esto significa que el segundo conjunto de datos tiene colas más pesadas (distribución con colas más anchas) que el primer conjunto de datos.
Ahora, comparando los qq plots de covid en el 2021 golbal y regional tenemos que los casos de covid confirmados van en aumento.
x <- ggplot(covid_hospital,aes(sample=Covid_2021)) +
geom_qq(fill="black",color="#8B668B") +
geom_qq_line() +
theme_light() +
labs(title="Nacional", y="", x="Theoretical Quantiles")
y <- ggplot(hNorte,aes(sample=Covid_2021)) +
geom_qq(fill="black",color="#8B7B8B") +
geom_qq_line() +
theme_light() +
labs(title="Región Norte", y=" ", x="Theoretical Quantiles")
cowplot::plot_grid(x,y, ncol = 2)
Se ha mostrado que existe una correlación entre la población y los casos confirmados de covid. Para poder visualizar y entender mejor el efecto que tiene una a la otra, se creó este scatterplot donde buscamos ver la relación de estas dos variables junto una línea de tendencia creada utilizando una regresión lineal de estos datos.
Aquí podemos ver que si existe una relación positiva para ambos gráficos. Esto quiere decir que mientras más crece la población, mayor casos de covid confirmados hay. Con este insight se estará viendo más adelante cómo esto afecta de manera espacial, pero hasta el momento podemos confirmar la relación positiva y el impacto creciente que este le espera tanto para México como para la región norte.
# EFECTO COVID 2O21 EN POBLACION 2022 RN
## SCATTERPLOT + REGRESION LINEAL
A <-ggplot(covid_hospital, aes(x=poblacion_2022, y=Covid_2021)) +
geom_point(color="#34A0A4", alpha=0.8) +
theme_light() +
theme(plot.title = element_text(size=12)) +
geom_smooth(method='lm', color="black", alpha=0.8, size=0.5, fill="skyblue") + #regression line
labs(title="Nacional",x=" Población", y="Casos Covid")
B <-ggplot(hNorte, aes(x=poblacion_2022, y=Covid_2021)) +
geom_point(color="#184E77", alpha=0.8) +
theme_light() +
theme(plot.title = element_text(size=12)) +
geom_smooth(method='lm', color="black", alpha=0.8, size=0.5, fill="skyblue") + #regression line
labs(title="Región Norte",x=" Población", y=" ")
cowplot::plot_grid(A,B, ncol = 2)
A continuación, vemos la distribución normal de la variable “rezago social” a nivel nacional y regional. La media a nivel nacional es de -0.0019 y la media a nivel regional es de -0.6174. Bajo los parametros de la variable, se estableció que el rango de -0.71 a 0.13 representan un nivel de rezago bajo, indicando que ambos sectores entran en esta categoría.
summary(covid_hospital$rezago_social)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -1.550000 -0.760000 -0.220000 -0.001486 0.470000 6.830000 11
summary(hNorte$rezago_social)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -1.5100 -1.1200 -0.9000 -0.6174 -0.5000 6.8300 1
A <- ggplot(covid_hospital, aes(x=rezago_social)) +
geom_density(fill="#81C58F", color="#e9ecef", alpha=0.7, bw=.5) +
geom_vline(aes(xintercept=mean(rezago_social)),color="azure4", linetype="dashed", size=1) +
ggtitle("Rezago Económico Mexico") +
scale_x_continuous(limits = c(-5, 7)) +
labs(title="Rezago Económico Mexico",x=" rezago social", y="density")+
theme_light()
B <- ggplot(hNorte, aes(x=rezago_social)) +
geom_density(fill="#69b3a2", color="#e9ecef", alpha=0.7, bw=1) +
scale_x_continuous(limits = c(-5, 7)) +
labs(title="Rezago Económico Región Norte",x="rezago social", y=" ") +
theme_light()
cowplot::plot_grid(A,B, ncol = 2)
# CARGA DE DATOS
setwd("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1")
map_sf <- sf::read_sf("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/cvd/cvd_shp/mx_mpios_data.shp")
#covid_hospital <- rename(covid_hospital,IDUNICO=cve_ent)
#map_datab<-right_join(map_sf,covid_hospital,by="IDUNICO")
map_databN<-map_sf %>%
dplyr::filter(entidad %in% c("Baja California", "Chihuahua", "Coahuila", "Nuevo Leon", "Sonora", "Tamaulipas"))
# CARGA DE DATOS
map_poly<-readShapePoly("/Users/ximenamartinez/Documents/Semestre 8/Planeación estratégica basada en analítica prescriptiva/M1/mx_mpios.shp",IDvar="IDUNICO",proj4string=CRS("+proj=longlat"))
map.centroid<-coordinates(map_poly)
map.link<-poly2nb(map_poly,queen=T)
map.linkW<-nb2listw(map.link, style="W")
Siguiendo el ESDA, visualizamos la distribución espacial de los datos a nivel municipal utilizando la principal variable de interés (casos de covid confirmados). Aquí podemos ver que mientras mayor sean los casos confirmados estos tendrán un tono azul claro y menos más oscuro. Aunque no se distingue muy bien por la gran cantidad de municipios se puede resaltar que los municipios céntricos son los que cuentan con una tasa de casos de covid confirmados.
# MAPA GENERAL - Covid
ggplot(map_sf) +
geom_sf(color = "white", aes(fill = Covid),linetype=0.75,lwd=0.25) +
ggtitle(label="Distribución Espacial Covid", subtitle=" Nivel Municipio") +
theme_light() + theme(legend.position="bottom")
En este mapa podemos observar la distribución espacial de la pobreza en méxico. Vemos que en las regiones del centro y sur es donde mayormente se localiza el mayor porcentaje de la población en méxico en situación de pobreza, siendo este un factor relevante a la hora de analizar los casos de covid 19.
# MAPA GENERAL - pobreza
ggplot(map_sf) +
geom_sf(color = "white", aes(fill = Pobreza),linetype=0.75,lwd=0.25) +
ggtitle(label="Distribución Espacial", subtitle="Pobreza en Mexico") +
theme_light() + theme(legend.position="bottom")
Continuando con el análisis a más detalle, tenemos esta mapa que muestra a nivel municipal de toda la región norte el nivel de pobreza y tenemos que en la región norte, las áreas por encima de 0.50 tienen una mayor proporción de población viviendo en pobreza, mientras que las áreas por debajo de 0.50 tienen una menor proporción.
# MAPA POR REGIÓN NORTE - pobreza
ggplot(data=map_databN) +
geom_sf(color = "white", aes(fill = Pobreza),linetype=0.75,lwd=0.25) +
theme_light()+
ggtitle(label="Distribución Espacial Región Norte", subtitle="Pobreza") +
theme(legend.position="bottom")
Después, tenemos este mapa que muestra la distribución espacial a nivel regional, viendo claramente las divisiones de Centro, Norte, Centro Norte y sur.
# MAPA POR REGIÓN
colores <- colorRampPalette(c("#D9ED92","#99D98C","#52B69A","#1A759F","#184E77"))(5)
ggplot(data=map_sf) +
geom_sf(aes(fill=Region), color=NA, linetype=0.75,lwd=0.25) +
theme_light()+ scale_fill_manual(values=colores) +
ggtitle(label="Distribución Espacial por región", subtitle="Nivel Regional") + theme(legend.position="bottom")
De igua manera, realizamos otro mapa que muestra la distrución de casos por covid confirmados en las entidades de la region norte, que son Baja California, Chihuahua, Coahuila, Nuevo León, Sonora y Tamaulipas.
# MAPA POR REGIÓN NORTE- ENTIDADES
colores <- colorRampPalette(c("#D9ED92","#B5E48C","#99D98C","#76C893","#34A0A4","#184E77"))(6)
ggplot(data=map_databN) +
geom_sf(aes(fill=entidad), color=NA, linetype=0.75,lwd=0.25) +
theme_light()+ scale_fill_manual(values=colores) +
ggtitle(label="Distribución Espacial Región Norte")
Ahora, analizando un poco más a detalle, a continuación, tenemos un mapa que muestra a nivel municipal de toda la región norte los casos confirnados por covid. Vemos que en la región norte es donde más se localizan los casos confirmados por covid 19.
# MAPA POR REGIÓN NORTE - COVID
ggplot(data=map_databN) +
geom_sf(color = "white", aes(fill = Covid),linetype=0.75,lwd=0.25) +
theme_light()+
ggtitle(label="Distribución Espacial Región Norte", subtitle="Covid") + theme(legend.position="bottom")
Una matriz de conectividad es utilizada para medir la proximidad espacial entre unidades geográficas, en este caso lo vemos a nivel municipal. Con esto se busca mostrar la conexión o la distancia entre las unidades geográficas e identificar los patrones de conectividad y comprender cómo se relacionan las unidades espaciales entre sí.
# MAPA de connectividad
plot(map_poly,border="orangered3",axes=FALSE,las=1)
plot(map_poly,col="grey",border=grey(0.9),axes=T,add=T)
plot(map.linkW,coords=map.centroid,pch=19,cex=0.1,col="orangered3",add=T)
title("Spatial Connectivity Matrix")
Se realizó una simulación monte carlo para detectar la presencia de autocorrelación espacial y tenemos que:
moran.mc(map_sf$Covid, map.linkW, nsim=9999) #covid
##
## Monte-Carlo simulation of Moran I
##
## data: map_sf$Covid
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.29205, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Poblacion, map.linkW, nsim=9999) #poblacion
##
## Monte-Carlo simulation of Moran I
##
## data: map_sf$Poblacion
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.094651, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Densidad20, map.linkW, nsim=9999) #densidad
##
## Monte-Carlo simulation of Moran I
##
## data: map_sf$Densidad20
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.26973, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Pobreza, map.linkW, nsim=9999) #pobreza
##
## Monte-Carlo simulation of Moran I
##
## data: map_sf$Pobreza
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.33665, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
moran.mc(map_sf$Acceso_SS, map.linkW, nsim=9999) #carece a servicios de seguridad social
##
## Monte-Carlo simulation of Moran I
##
## data: map_sf$Acceso_SS
## weights: map.linkW
## number of simulations + 1: 10000
##
## statistic = 0.13847, observed rank = 10000, p-value = 1e-04
## alternative hypothesis: greater
Los clusters geoespaciales utilizan técnicas estadísticas para agrupar los municipios de esta región en grupos o categorías con base en sus características comunes. A continuación la interpretación general de los clusters:
# Datos
map_mpios_mx<-map_sf
queen_w <- rgeoda::queen_weights(map_mpios_mx)
# trnaformación
lisa_covid2021<-local_moran(queen_w, map_mpios_mx["Covid"])
map_mpios_mx$cluster_covid2021<-as.factor(lisa_covid2021$GetClusterIndicators())
levels(map_mpios_mx$cluster_covid2021)<-lisa_covid2021$GetLabels() ### clusters for covid19 cases in 2021
# Mapa
ggplot(data=map_mpios_mx) +
geom_sf(aes(fill=cluster_covid2021)) +
ggtitle(label="Clusters COVID 19 en México", subtitle="Casos Confirmados")
# Datos
map_mpios_mxN<-map_databN
queen_y <- rgeoda::queen_weights(map_mpios_mxN)
# trnaformación
lisa_covid2021<-local_moran(queen_y, map_mpios_mxN["Covid"])
map_mpios_mxN$cluster_covid2021<-as.factor(lisa_covid2021$GetClusterIndicators())
levels(map_mpios_mxN$cluster_covid2021)<-lisa_covid2021$GetLabels() ### clusters for covid19 cases in 2021
# Mapa
ggplot(data=map_mpios_mxN) +
geom_sf(aes(fill=cluster_covid2021)) +
ggtitle(label="COVID 19 Region Norte", subtitle="Casos Confirmados")
Según el análisis ESDA presentado, se puede concluir que la región norte de México no presenta una diferencia significativa en cuanto a la correlación de variables con respecto a la totalidad de México. Además, se destaca que hay una correlación positiva entre la variable de interés (Covid) y variables como población, centros médicos, inclusión financiera y densidad, y una correlación negativa con variables como rezago social, pobreza y acceso a servicios de salud.
La region norte tiene oportunidades de mejora ya que es de las regiones con mayor casos confirmados por covid 19. Además, las regiones centro y sur es donde mayormente se localiza un alto porcentaje de la población en méxico en situación de pobreza, siendo este un factor relevante a la hora de analizar los casos de covid 19 y el porcentaje de la población que cuenta con acceso a servicios de salud, además de ser una gran área de oportunidad para dichas regiones relacionado con el área de salud. Para la región norte, vemos que si existe un porcentaje de pobreza pero no tan alto como el de otras regiones.
Los principales factores socioeconómicos que caracterizan los clústers de casos confirmados de COVID-19 son la densidad poblacional, la cantidad de centros médicos y las variables socioeconómicas relevantes de cada entidad. En el análisis se encontró que ciertas variables socioeconómicas como la densidad poblacional, la cantidad de centros médicos, la inclusión financiera y la ubicación geográfica se correlacionaron significativamente con la propagación del COVID-19. La densidad poblacional y las variables socioeconómicas también pueden contribuir al crecimiento y expansión de organizaciones relacionadas con la prestación de servicios de salud. Por lo tanto, se recomienda que las organizaciones consideren estos factores al planificar la expansión y establecimiento de servicios de salud en diferentes regiones.
https://geodacenter.github.io/workbook/6a_local_auto/lab6a.html
https://www.e-education.psu.edu/geog586/node/673
What is Exploratory Data Analysis - EDA? https://www.ibm.com/topics/exploratory-data-analysis
What is Exploratory Spatial Data Analysis - ESDA? https://towardsdatascience.com/what-is-exploratory-spatial-data-analysis-esda-335da79026ee
What is Exploratory Spatial Data Analytics – ESDA? https://builtin.com/data-science/exploratory-spatial-data-analysis-esda